package com.hsylient.javase.chapter11.demo04;

import lombok.SneakyThrows;

public class ThreadStopTest {

    @SneakyThrows
    public static void main(String[] args) {
        // 创建子线程
        ThreadStop threadStop = new ThreadStop();
        Thread thread = new Thread(threadStop);
        // 开启子线程 等待cpu调度
        thread.start();
        /**
         * 主线程先睡一秒钟
         * <p>
         * 这里睡一秒的原因是：main()方法按照从上到下的顺序进行执行，当执行到start()方法的时候，就开启了站的栈空间
         * 线程进入到就绪状态等待cpu的调度，这个时候如果不sleep，main方法调用了stop方法，然后线程获得了cpu的时间片
         * 也不能执行了，因为已经调用了stop方法，这里睡眠一下是给子线程一个时间，让他抢占到cpu的时间片执行一下，不然就
         * 看不到执行的效果了。。。
         */
        Thread.sleep(1000);
        // 然后主线程修改掉flag值，让子线程停止
        threadStop.stopThread();
        System.out.println("子线程停止。。。");

    }
}
